home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 32
/
Aminet 32 (1999)(Schatztruhe)[!][Aug 1999].iso
/
Aminet
/
comm
/
tcp
/
AmiVNC.lha
/
AmiVNC
/
Utils
/
StopAmiVNC
/
StopAmiVNC.c
< prev
next >
Wrap
C/C++ Source or Header
|
1999-05-28
|
2KB
|
78 lines
// StopAmiVNC - A tool to stop AmiVNC (Amiga experimental VNC server)
// Includes ***********************************************
// Needed to compile : SDK AmiTCP 4.3
#include <exec/types.h>
#include <exec/memory.h>
#include <devices/input.h>
#include <devices/inputevent.h>
#include <libraries/commodities.h>
#include <proto/all.h>
#include <proto/socket.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <ctype.h>
// Specific Inculdes ***********************************************
#include "rfbproto.h" // Structures & constants for VNC protocol
// Constants ***********************************************
#define XDC_PORT 5900 // Port # for bind()
#define FALSE 0
#define TRUE 1
#undef PARANO
// Common messages
char XDC_ID[] = "StopAmiVNC 0.0.1 May 28 1999";
char XDC_SEND[] = "main.c / main : send() error";
char XDC_RECV[] = "main.c / main : recv() error";
// Global variables ***********************************************
LONG iMasterSocket = NULL;
// Exit
void vCleanExit(char *cMsg, long lCode)
{
if (iMasterSocket) CloseSocket(iMasterSocket);
printf("StopAmiVNC - %s (%ld)\n", cMsg, lCode);
}
// Main entry point ***********************************************
int main(int argc, char **argv)
{
struct sockaddr_in sAddr; // Local address for bind()
rfbProtocolVersionMsg mProtVerMsg;
int iPort = XDC_PORT;
// Prepare listener socket
if (-1 == (iMasterSocket = socket(AF_INET, SOCK_STREAM, 0)))
vCleanExit("main.c / main : socket() error", Errno());
// Connect to server
sAddr.sin_family = AF_INET;
sAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
sAddr.sin_port = htons(iPort);
if (-1 == connect(iMasterSocket, (struct sockaddr *) &sAddr, sizeof(sAddr)))
vCleanExit("main.c / main : connect() error", Errno());
// NegociateProtocolVersion, sending 0/0 as version to force server to exit
if (-1 == (recv(iMasterSocket, mProtVerMsg, sz_rfbProtocolVersionMsg, 0)))
vCleanExit(XDC_RECV, Errno());
sprintf((char *) mProtVerMsg, rfbProtocolVersionFormat, 0, 0);
if (-1 == (send(iMasterSocket, (UBYTE *) mProtVerMsg, sz_rfbProtocolVersionMsg, 0)))
vCleanExit(XDC_SEND, Errno());
vCleanExit("StopAmiVNC : asked server to stop", 0);
}